/*
    Kelompok    2
    Kelas       2
    Anggota :
    1. Yudha Wastu Prawira      / 13509002
    2. Robertus Theodore        / 13509008
    3. Rendy Bambang Junior     / 13509036
    4. Hartono Sulaiman Wijaya  / 13509046
    5. Daniel Prihartoni        / 13509088
    6. Raydhitya Yosep          / 13509092

*/

#ifndef _GAMESTATE_H
#define _GAMESTATE_H

#include "State.h"
#include "Farm.h"
#include "Player.h"
#include "Dwarf.h"
#include "Weather.h"
#include "App.h"

class GameState : public State{
	public :
		//ctor & dtor
		GameState();
		//menciptakan objek dengan nama pemain, untuk new game
		GameState(string);
		//menciptakan objek dengan info data save game, untuk load game
		GameState(SaveInfo);
		~GameState();

		//mengembalikan info tampilan
		DisplayInfo update(CommandToken);
		//mendapatkan display default pertama kali (bukan dari user)
		DisplayInfo getFirstDisplay();

	private :
		//menginisialisasi variabel-variable internal untuk permainan
		//inisialisasi aktivasi state
		void initialize();
		//inisialisasi new game
		void initialize(string);
		//inisialisasi load game
		void initialize(SaveInfo);

		//player dari permainan ini
		Player *player;
		//kurcaci-kurcaci
		Dwarf *waterDwarf;
		Dwarf *harvestDwarf;
		Dwarf *slashDwarf;

		//kebun, dan tanaman-tanamannya
		Farm farm;
		Weather weather;
		//info yang ada di toko yaitu daftar barang, harga beli barang, dan harga jual hasil panen
		StoreInfo storeInfo;

		//method pembantu
		//mengubah string jadi integer
		string intToString(int number);
};

#endif
